home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / tools / dfÜ / bbs / tempdemo / tempest / rexx / cn-updater.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1995-06-21  |  44.4 KB  |  1,290 lines

  1. /*
  2.                       _____
  3.                      /      __  _ _   __  __    __  _  __  ____
  4.                      \     /  _/  \  /   /     /   /  /   / __
  5.                    ___\   /        \    / __  /   /      / __
  6.                   /      /  \      /   /     /   /  \   /
  7. ______________________________________________________________________________
  8.  
  9.      Updater, © 1994 by Casa Nova, Sysop of Skyline BBS Berlin.
  10.      Written for /T\empest BBS v3.15 or higher Versions. Started: 05-26-94
  11.  
  12.      NOTE: - Create an subdirectory "UPDATE!" to your "BBS:DOORS/" directory!
  13.            - Create an subdirectory Doors:UPDATE!/
  14.            - Copy all files to this directory that you want the
  15.              users have access to through the Updater-Tool.
  16.            - ...and you need LHA in your c: directory!
  17.  
  18.      Read the document!
  19. ______________________________________________________________________________   */
  20.  
  21.  
  22. /*TRACE RESULTS*/                /*--------------------------*/
  23. OPTIONS RESULTS                                 /*--------------------------*/
  24. ARG BBS_NODE                                    /* Grab the Node Number     */
  25. Address value 'TempRexx-'BBS_NODE               /* Tell Arexx where the BBS Is
  26. ----------------------------------------------------------------------------*/
  27. VERS = '1.4'                                /* DON'T CHANGE!          /
  28. ----------------------------------------------------------------------------*/
  29. PROGRAMNAME = 'Updater'                /* DON'T CHANGE!         /
  30. ----------------------------------------------------------------------------*/
  31. V_DATE = '07-31-94'                             /* DON'T CHANGE!             /
  32. ---------------------------------------------------------------------------- /
  33. $VER: Updater 1.4 (31.07.94) © by Casa Nova, Sysop of Skyline BBS Berlin
  34. ----------------------------------------------------------------------------*/
  35. Bufferflush                                     /*                      */
  36. signal ON ERROR                                 /*                      */
  37. signal ON HALT                                  /*                      */
  38. signal ON SYNTAX                                /*                      */
  39. signal ON FAILURE                               /*                      */
  40. signal ON IOERR                                 /*                      */
  41.                                                 /*----------------------*/
  42. 'BBSIDENTIFY' ABBEREXX                             /* +                    */
  43. TEMP   = (result)                     /* Tempest Version      */
  44.                                                 /*----------------------*/
  45. TEMP_VERS = SUBSTR(TEMP,1,4)            /*                      */
  46. IF TEMP_VERS < '3.15' THEN DO            /*                      */
  47.    MESSAGE                    /*                      */
  48.    MESSAGE '    INFO:  This Tool needs a Tempest Software higher than 3.14a !'
  49.    MESSAGE '           You are still running Tempest 'TEMP
  50.    CALL DONE                    /*                      */
  51. END                        /*                      */
  52.                                                 /*----------------------*/
  53. 'BBSIDENTIFY ANSI'                              /* Ansi on/off?         */
  54. GFX = (result)                                  /*                      */
  55.                                                 /*----------------------*/
  56. 'BBSIDENTIFY' NAME                             /* +                    */
  57. SYSTEM = (result)                     /* Name of BBS          */
  58.                                                 /*----------------------*/
  59. 'PATH' 0                                        /* Get the path of the  */
  60. BBS    = (result)                               /* BBS:OPTIONAL/        */
  61.                                                 /*----------------------*/
  62. 'Getvar' 0                                      /* UserName             */
  63. RUName = (result)                               /* Name UPPER-CASE      */
  64.                                                 /*----------------------*/
  65. 'PATH' 6                                        /* Get the path of the  */
  66. DDOOR  = (result)                               /* BBS:DOOR/            */
  67.                                                 /*----------------------*/
  68. 'PATH' 15                                       /* Get the path of the  */
  69. TEXT   = (result)                               /* BBS:TEXT/            */
  70.                                                 /*----------------------*/
  71. 'Getvar' 18                                     /* +                    */
  72. SN     = (result)                               /* UserSlotNumber(User#)*/
  73.                                                 /*----------------------*/
  74. 'GetStr' 16                                     /* +                    */
  75. DAT    = (result)                               /* 30-05-94             */
  76.                                                 /*----------------------*/
  77. COD=TIME()                                      /* 22:22:22             */
  78.                                                 /*----------------------*/
  79. UDDIR='RAM:UPDATE!'BBS_NODE                     /*                      */
  80.                                                 /*----------------------*/
  81. DOORUD=DDOOR'UPDATE!/'                          /*                      */
  82.                                                 /*----------------------*/
  83. TIM    = TIME()                        /* TIME            */
  84. DATE   = DATE(USA)                              /* DATE 12-31-93        */
  85.                                                 /*----------------------*/
  86. CONFIG = 'CON'                                  /* (don't change!)      */
  87. fileCON= BBS'Doors/UPDATE!.data'            /* (don't change!)      */
  88.  
  89. /*----------------------------------------------------------------------*/
  90. IF ~SHOW('L','rexxsupport.library') THEN
  91.    ADDLIB('rexxsupport.library',0,-30,0)
  92. IF ~SHOW('L',"rexxreqtools.library") THEN
  93.    ADDLIB('rexxreqtools.library',0,-30,0)
  94.  
  95. file0 = 'NODE:DOOR_'BBS_NODE            /* Create NODE:DOOR_#   */
  96. OPEN(fn0,file0,'W')                /* Displays in WHO.mod  */
  97. Writeln(fn0,'/T\empest Updater  ')        /* when this tool is    */
  98. CLOSE(fn0)                               /* used!                */
  99.  
  100. START:
  101. HEADER1 = MESSAGE ' 'system' 'PROGRAMNAME' 'VERS' 'copies(' ',23-length(system))''copies(' ',15-length(PROGRAMNAME))' Designed by Casa Nova ['V_DATE'] '
  102. HEADER2 = MESSAGE ''COPIES('_',79)''
  103. START:
  104. CLS
  105. MESSAGE
  106. HEADER1
  107. HEADER2
  108. MESSAGE
  109.  
  110. /*======================================================================*/
  111. /*                            CONFIG / STATS                            */
  112. /*======================================================================*/
  113. STATS:
  114. c=1
  115. IF ~exists(fileCON) THEN DO
  116.    Version    = 0                   /* 1  11 Letter */
  117.    ShutOff    = 0                   /* 2  11 Letter *//* 0 = ON 1 = OFF */
  118.    TdyDate    = DAT            /* 3  11 Letter */
  119.    TdyFiles   = 0            /* 4  11 Letter */
  120.    TdyUsed    = 0            /* 5  11 Letter */
  121.    TdyDLDs    = 0            /* 6  11 Letter */
  122.    TdyUPD     = 0            /* 7  11 Letter */
  123.    TotalUsed  = 0            /* 8  11 Letter */
  124.    TotalFiles = 0            /* 9  11 Letter */
  125.    TotalDLDs  = 0            /* 10 11 Letter */
  126.    TotalUPD   = 0            /* 11 11 Letter */
  127.    Updates    = 0            /* 12 11 Letter */
  128.    CALL WRITE_CONFIG
  129. END
  130. IF exists(fileCON) THEN DO
  131.    OPEN(fnCON,fileCON,'R')                       /* Check # of lines         */
  132.      DO until eof(fnCON)                         /* to the end of file       */
  133.         con.c = readln(fnCON)                    /* Number of lines = x      */
  134.         c = c+1                                  /*                          */
  135.      END                                         /*                          */
  136.    CLOSE(fnCON)                                  /*                          */
  137. END
  138. Version    = con.1
  139. ShutOff    = con.2
  140. TdyDate    = con.3
  141. TdyFiles   = con.4
  142. TdyUsed    = con.5
  143. TdyDLDs    = con.6
  144. TdyUPD     = con.7
  145. TotalUsed  = con.8
  146. TotalFiles = con.9
  147. TotalDLDs  = con.10
  148. TotalUPD   = con.11
  149. Updates    = con.12
  150.  
  151. IF TdyDate ~= DAT THEN DO 
  152.    TdyDate    = DAT    
  153.    TdyFiles   = 0    
  154.    TdyUsed    = 0    
  155.    TdyDLDs    = 0    
  156.    TdyUPD     = 0    
  157. END
  158.  
  159. IF ShutOff = 1 THEN DO 
  160.    IF SN = 1 THEN DO
  161.       MESSAGE 'OFFLINE!'
  162.       CALL WRITE_CONFIG
  163.    END
  164.    MESSAGE 'THIS TOOL IS OFFLINE AT THE MOMENT!'
  165.  
  166.    CALL DONE3
  167. END
  168.  
  169. WRITE_CONFIG:
  170.  
  171. TdyUsed=TdyUsed + 1
  172. TotalUsed=TotalUsed + 1
  173.  
  174.  
  175. CALL STATS2
  176.  
  177. file0 = 'NODE:DOOR_'BBS_NODE            /* Create NODE:DOOR_#   */
  178. OPEN(fn0,file0,'W')                /* Create NODE:DOOR_#   */
  179. Writeln(fn0,'UpdateTool ')            /* Create NODE:DOOR_#   */
  180. CLOSE(fn0)                               /* Create NODE:DOOR_#   */
  181.  
  182. IF LENGTH(STATEF(UDDIR))=0 THEN DO
  183.    ADDRESS COMMAND 'makedir 'UDDIR''
  184. END
  185. IF STATEF(UDDIR)~='' THEN DO
  186.    NOP
  187. END
  188.  
  189.  
  190. /*======================================================================*/
  191. /*                            LANGUAGE                                  */
  192. /*======================================================================*/
  193. 'Getvar' 92                                 /* +                    */
  194. LANG = (result)                         /* Language of user     */
  195.                         /*----------------------*/
  196. 'PATH' 11                                       /* Get the path of the  */
  197. OPTIONAL = (result)                             /* BBS:OPTIONAL/        */
  198. FLang = OPTIONAL'LANGUAGES.OPT'                 /* add the filename     */
  199. IF exists(Flang) THEN DO                        /* Check                */
  200.    x = 0                                        /* reset x to 0         */
  201.    OPEN(fnl,Flang,'R')                          /* Check # of lines...  */
  202.      DO until eof(fnl)                          /* to the end of file.  */
  203.         var.x = readln(fnl)                     /* Number of lines = x  */
  204.         /* MESSAGE var.x x */                   /* available languages  */
  205.         x = x+1                                 /*                      */
  206.      END                                        /*                      */
  207.    CLOSE(fnl)                                   /*                      */
  208. END                                             /*                      */
  209. LANG = var.LANG                                 /*                      */
  210. /* MESSAGE 'LANGUAGE:'  LANG */                 /* <-Example for output */
  211. /*======================================================================*/
  212. /* The selected LANGUAGE of the online User holds the variable: LANG    */
  213. /*======================================================================*/
  214.  
  215. l=E
  216.  
  217. /********************* DLD *************************/
  218.  
  219. DLD:
  220.   INFO   = ' Info: '
  221.   ERR3.E = SENDSTRING INFO' No File found - nothing downloaded! '
  222.   ERR3.G = SENDSTRING INFO' Keine 'type' gefunden - kein Download. '
  223.  
  224. ADDRESS COMMAND 'LIST >'UDDIR'/UpdateList-'BBS_NODE'u 'DOORUD' LFormat="%-25s %6L %-9D %T %-22C"'
  225. ADDRESS COMMAND 'SORT  'UDDIR'/UpdateList-'BBS_NODE'u 'UDDIR'/UpdateList-'BBS_NODE''
  226. VMODE=0
  227. x = 1
  228. f=0
  229. file12 = UDDIR'/UpdateList-'BBS_NODE
  230. IF exists(file12) THEN DO
  231.    OPEN(fn12,file12,'R')                         /* Check # of lines         */
  232.      DO until eof(fn12)                          /* to the end of file       */
  233.         ar.x = readln(fn12)                     /* Number of lines = x      */
  234.         var.x = SUBSTR(ar.x,1,99)
  235.         x = x+1                                  /*                          */
  236.      END                                         /*                          */
  237.    CLOSE(fn12)                                   /*                          */
  238. END
  239. x = x-2
  240. s=0
  241. DO s = 0 TO x
  242.    Mark.s  = 0
  243.    Flag.s  = ''
  244. END s
  245.  
  246. m=0
  247. IF GFX = 0 THEN DO
  248.    CLS
  249. END
  250. IF GFX = 1 THEN DO
  251.    SENDSTRING 'H'
  252. END
  253. MESSAGE
  254. HEADER1 
  255. HEADER2 
  256. MESSAGE
  257. MESSAGE ' No. Filename                   Bytes Date      Time     Comment               '
  258. MESSAGE '-------------------------------------------------------------------------------'
  259. DO m = 1 TO x
  260.  
  261.    new = LEFT(''RIGHT('['m']',14,' ')' 'var.m'',135,' ')
  262.    MESSAGE RIGHT(new,135,' ')
  263. END m
  264. MESSAGE '-------------------------------------------------------------------------------'
  265. ADDRESS COMMAND 'LIST >'UDDIR'/UpdateList-'BBS_NODE'u 'DOORUD' LFormat="%s%s"'
  266. ADDRESS COMMAND 'SORT  'UDDIR'/UpdateList-'BBS_NODE'u 'UDDIR'/UpdateList-'BBS_NODE''
  267.  
  268. file13 = UDDIR'/UpdateList-'BBS_NODE
  269. y=1
  270. IF exists(file13) THEN DO
  271.    OPEN(fn13,file13,'R')                         /* Check # of lines         */
  272.      DO until eof(fn13)                          /* to the end of file       */
  273.         FLine.y = readln(fn13)                   /* Number of lines = x      */
  274.         y = y+1                                  /*                          */
  275.      END                                         /*                          */
  276.    CLOSE(fn13)                                   /*                          */
  277. END
  278. z=1
  279.  
  280. ADDRESS COMMAND 'LIST >'UDDIR'/UpdateList-'BBS_NODE'u 'DOORUD' LFormat="%s"'
  281. ADDRESS COMMAND 'SORT  'UDDIR'/UpdateList-'BBS_NODE'u 'UDDIR'/UpdateList-'BBS_NODE''
  282. file14 = UDDIR'/UpdateList-'BBS_NODE
  283. y=1
  284. IF exists(file14) THEN DO
  285.    OPEN(fn14,file14,'R')                         /* Check # of lines         */
  286.      DO until eof(fn14)                          /* to the end of file       */
  287.         FName.y = readln(fn14)                   /* Number of lines = x      */
  288.         y = y+1                                  /*                          */
  289.      END                                         /*                          */
  290.    CLOSE(fn14)                                   /*                          */
  291. END
  292. z=1
  293.  
  294.  
  295. ASK_DL:
  296. FC = ''
  297. VIE= ''
  298. OF = ''
  299.  
  300. SENDSTRING 'Update Menu [1-'
  301. IF VMODE=0 THEN DO
  302. IF SN = 1 THEN DO
  303.    FC='/F'
  304.    OF='/O'
  305. END
  306. IF VMODE=1 THEN DO
  307.    VIE='/V'
  308. END
  309. SENDSTRING x''FC''VIE''OF'/Q/C/A/S/G/D/H/?]:    '
  310. END
  311. QUERY
  312. ADLD = upper(result)
  313. IF ADLD = 'O' THEN DO
  314.    IF SHUTOFF = 1 THEN DO
  315.       SHUTOFF = 0
  316.       MESSAGE 'ON'
  317.       CALL STATS2
  318.       CALL JEP
  319.    END
  320.    IF SHUTOFF = 0 THEN DO
  321.       SHUTOFF = 1
  322.       MESSAGE 'OFF'
  323.       CALL STATS2
  324.       CALL JEP
  325.    END
  326. END
  327. IF ADLD = '' THEN DO
  328.    CALL JEP
  329. END
  330. IF ADLD = 'C' THEN DO
  331.    f=0
  332.    j=0
  333.    s=0
  334.    DO s = 0 TO x
  335.       IF Mark.s > 0 THEN DO
  336.          Mark.s = 0
  337.          Flag.s = ''
  338.       END
  339.       j=j+1
  340.    END s
  341.    IF exists(file10) THEN DO
  342.       ADDRESS COMMAND 'DELETE 'file10' >NIL:'
  343.    END
  344.    CALL JEP
  345. END
  346. /*======================================================================*/
  347. /*                            FILENOTE                                  */
  348. /*======================================================================*/
  349.  
  350. IF ADLD = 'F' THEN DO   
  351.    FILENOTE:
  352.    NUMB=0
  353.    MESSAGE
  354.    IF SN ~= 1 THEN DO
  355.       MESSAGE INFO' This is a Sysop-Command, only!'
  356.       CALL JEP
  357.    END
  358.    SENDSTRING 'Please enter the Filenumber: '
  359.    QUERY
  360.    NUMB=(result)
  361.    IF NUMB = 'q' THEN DO
  362.       CLS
  363.       CALL JEP
  364.    END
  365.    IF DATATYPE(NUMB) ~= NUM THEN DO
  366.       MESSAGE INFO' This was not a number! Try again or [q] to exit command.'
  367.       CALL FILENOTE
  368.    END
  369.    
  370.    IF NUMB > x THEN DO
  371.       MESSAGE INFO' File not online! Try again.'
  372.       CALL FILENOTE
  373.    END
  374.    
  375.    IF NUMB < 1 THEN DO
  376.       MESSAGE INFO' File not online! Try again.'
  377.       CALL FILENOTE
  378.    END
  379.    MESSAGE
  380.    MESSAGE    '                       [----------------------]  [RETRUN] = No Comment'
  381.    SENDSTRING 'Please enter a Comment: '
  382.    QUERY
  383.    COMMENT=(result)
  384.       ADDRESS COMMAND 'FILENOTE 'FLine.NUMB' "'COMMENT'"'
  385.       ADDRESS COMMAND 'LIST >'UDDIR'/UpdateList-'BBS_NODE'u 'DOORUD' LFormat="%-25s %6L %-9D %T %-22C"'
  386.       ADDRESS COMMAND 'SORT  'UDDIR'/UpdateList-'BBS_NODE'u 'UDDIR'/UpdateList-'BBS_NODE''
  387.       VMODE=0
  388.       x = 1
  389.       f=0
  390.       file12 = UDDIR'/UpdateList-'BBS_NODE
  391.       IF exists(file12) THEN DO
  392.          OPEN(fn12,file12,'R')                         /* Check # of lines         */
  393.            DO until eof(fn12)                          /* to the end of file       */
  394.               ar.x = readln(fn12)                     /* Number of lines = x      */
  395.               var.x = SUBSTR(ar.x,1,99)
  396.               x = x+1                                  /*                          */
  397.            END                                         /*                          */
  398.          CLOSE(fn12)                                   /*                          */
  399.       END
  400.       x = x-2
  401.       CLS
  402. END
  403.    
  404. IF ADLD = 'S' THEN DO
  405.    q=0
  406.    IF f=0 THEN DO
  407.       MESSAGE 'No Files flagged!'
  408.       CALL JEP
  409.    END
  410.    /*======================================================================*/
  411.    /*  GET DATE & TIME AND CREATE AN SECURITY CODE                         */
  412.    /*======================================================================*/
  413.    KOD.1=SUBSTR(DAT,1,2)                           /* Get Day  (12)        */
  414.    KOD.2=SUBSTR(DAT,4,2)                           /*     Month(04)        */
  415.    KOD.3=SUBSTR(DAT,7,2)                           /*     Date (22)        */
  416.    KOD.4=SUBSTR(COD,1,2)                           /*     Time (02:36:00)  */
  417.    KOD.5=SUBSTR(COD,4,2)                           /*     Time (02:36:00)  */
  418.    KOD.6=SUBSTR(COD,7,2)                           /*     Time (02:36:00)  */
  419.                                                    /*                      */
  420.    LTT.1 ='A';LTT.27='A';LTT.53='A';LTT.79='A';    /*                      */
  421.    LTT.2 ='B';LTT.28='B';LTT.54='B';LTT.81='B';    /*                      */
  422.    LTT.3 ='C';LTT.29='C';LTT.55='C';LTT.82='C';    /*                      */
  423.    LTT.4 ='D';LTT.30='D';LTT.56='D';LTT.83='D';    /*                      */
  424.    LTT.5 ='E';LTT.31='E';LTT.57='E';LTT.84='E';    /*                      */
  425.    LTT.6 ='F';LTT.32='F';LTT.58='F';LTT.85='F';    /*                      */
  426.    LTT.7 ='G';LTT.33='G';LTT.59='G';LTT.86='G';    /*                      */
  427.    LTT.8 ='H';LTT.34='H';LTT.60='H';LTT.87='H';    /*                      */
  428.    LTT.9 ='I';LTT.35='I';LTT.61='I';LTT.88='I';    /*                      */
  429.    LTT.10='J';LTT.36='J';LTT.62='J';LTT.89='J';    /*                      */
  430.    LTT.11='K';LTT.37='K';LTT.63='K';LTT.90='K';    /*                      */
  431.    LTT.12='L';LTT.38='L';LTT.64='L';LTT.91='L';    /*                      */
  432.    LTT.13='M';LTT.39='M';LTT.65='M';LTT.92='M';    /*                      */
  433.    LTT.14='N';LTT.40='N';LTT.66='N';LTT.93='N';    /*                      */
  434.    LTT.15='O';LTT.41='O';LTT.67='O';LTT.94='O';    /*                      */
  435.    LTT.16='P';LTT.42='P';LTT.68='P';LTT.95='P';    /*                      */
  436.    LTT.17='Q';LTT.43='Q';LTT.69='Q';LTT.96='Q';    /*                      */
  437.    LTT.18='R';LTT.44='R';LTT.70='R';LTT.97='R';    /*                      */
  438.    LTT.19='S';LTT.45='S';LTT.71='S';LTT.98='S';    /*                      */
  439.    LTT.20='T';LTT.46='T';LTT.72='T';LTT.99='T';    /*                      */
  440.    LTT.21='U';LTT.47='U';LTT.73='U';LTT.00='!';    /*                      */
  441.    LTT.22='V';LTT.48='V';LTT.74='V';LTT.01='1';    /*                      */
  442.    LTT.23='W';LTT.49='W';LTT.75='W';LTT.02='2';    /*                      */
  443.    LTT.24='X';LTT.50='X';LTT.76='X';LTT.03='3';    /*                      */
  444.    LTT.25='Y';LTT.51='Y';LTT.77='Y';LTT.04='4';    /*                      */
  445.    LTT.26='Z';LTT.52='Z';LTT.78='Z';LTT.05='5';    /*                      */
  446.    LTT.06='6';LTT.07='7';LTT.08='8';LTT.09='9';    /*                      */
  447.                                     LTT.80='U';    /*                      */
  448.    CODE=KOD.1+ KOD.2+ KOD.3+ KOD.4+ KOD.5+ KOD.6+KOD.6+BBS_NODE 
  449.                                                    /*                      */
  450.    IF LENGTH(CODE)=3 THEN DO                       /*                      */
  451.       CODE1=SUBSTR(CODE,1,1)                       /*                      */
  452.       CODE2=SUBSTR(CODE,2,2)                       /*                      */
  453.       CODE1=CODE1+BBS_NODE                         /*                      */
  454.       CODE=LTT.CODE2||CODE1                        /*                      */
  455.    END                                             /*                      */
  456.    /*======================================================================*/
  457.    CLS
  458.    IF A < MAX THEN DO
  459.       IF exists(file10) THEN DO
  460.          ADDRESS COMMAND 'DELETE 'file10' >NIL:'
  461.       END
  462.       Max = a
  463.    END
  464.    MESSAGE
  465.    HEADER1 
  466.    HEADER2 
  467.    MESSAGE
  468.    MESSAGE
  469.    MESSAGE 'Creating individual Filename: Temp_'CODE'.lha'
  470.    MESSAGE '-----------------------------------------'
  471.    IF LENGTH(STATEF(UDDIR))=0 THEN DO
  472.       MESSAGE 'Error: Directory not found - creating directory!'
  473.       ADDRESS COMMAND 'makedir 'UDDIR''
  474.    END
  475.  
  476. /* Make Batch to start LhA asynchron */
  477.  
  478.    IF ~OPEN(BAT,"NODE:UD.bat-"BBS_NODE,'W') THEN CALL ERROR
  479.     WRITELN(BAT,".key Filename")
  480.     WRITELN(BAT,"lha -e a "UDDIR"/Temp_"CODE".lha <Filename> >FIFO:UD_Node-"BBS_Node"/wkme")
  481.     WRITELN(BAT,"IF WARN")
  482.     WRITELN(BAT,"SetEnv LhAErr-"BBS_Node" 1")
  483.     WRITELN(BAT,"ENDIF")
  484.    IF ~CLOSE(BAT) THEN CALL ERROR
  485.  
  486.    m=0
  487.    s=0
  488.    z=0
  489.    DO m = 1 TO x
  490.       s=s+1
  491.       z=z+1
  492.       IF Flag.s ~= 'Flagged!' THEN DO
  493.          FNLength.z = 0
  494.       END
  495.       IF Flag.s = 'Flagged!' THEN DO
  496.  
  497.          f=f+1
  498.          ADDRESS COMMAND 'run >NIL: execute NODE:UD.bat-'BBS_NODE' 'FLine.z
  499.          SENDSTRING ''
  500.      CALL View
  501.          SENDSTRING ''
  502.       END
  503.    END m
  504.    MESSAGE
  505.    MESSAGE 'File/Archive complete. Includes: 'a' Updates, Size: 'WORD(STATEF(''UDDIR'/Temp_'CODE'.lha'),2) 'Bytes'
  506.    CALL ASK_DLD
  507.    CLS
  508. END
  509.  
  510. IF ADLD = 'A' THEN DO
  511.    j=0
  512.    s=0
  513.    DO s = 0 TO x
  514.       Mark.s = Mark.j + 2
  515.       Flag.s = 'Flagged!'
  516.       j=j+1
  517.    END s
  518.    CALL JEP
  519. END
  520.  
  521. IF ADLD = 'Q' THEN DO
  522.    CALL DONE
  523. END
  524.  
  525. IF ADLD = 'V' THEN DO
  526.    MESSAGE 'Not implemeted in this version.'
  527.    CALL JEP
  528. IF VMODE=1 THEN DO
  529.    MESSAGE 'Already used!'
  530.    CALL JEP
  531. END
  532. MESSAGE 'TEST1'
  533.    VMODE=1
  534.    ADDRESS COMMAND 'ECHO  >'UDDIR'/List1-'BBS_NODE' "FAILAT 21"'
  535.    ADDRESS COMMAND 'LIST >>'UDDIR'/List1-'BBS_NODE' 'DOORUD' LFormat="VERSION %s%s >>'UDDIR'/VER"'
  536.  
  537. MESSAGE 'TEST2'
  538.    ADDRESS COMMAND 'FAILAT 21'
  539. MESSAGE 'TEST3'
  540.    ADDRESS COMMAND 'execute 'UDDIR'/List1-'BBS_NODE''
  541. MESSAGE 'TEST4'
  542.    file15 = ''UDDIR'/VER'
  543.    a=1
  544.    IF exists(file15) THEN DO
  545.       OPEN(fn15,file15,'R')                       /* Check # of lines         */
  546.       DO until eof(fn15)                          /* to the end of file       */
  547.          FVersion.a = readln(fn15)                /* Number of lines = a      */
  548.          MESSAGE FVersion.a
  549.          a = a+1                                  /*                          */
  550.       END                                         /*                          */
  551.       CLOSE(fn15)                                 /*                          */
  552.    END
  553.    z=1
  554. MESSAGE 'TEST5'
  555.    DO z = 1 TO x
  556. /*
  557.       MESSAGE FIND(FVersion.z,'Could not find version information')
  558. */
  559.  
  560.       MESSAGE SUBWORD(FVersion.z,5,1)
  561.       IF SUBWORD(FVersion.z,5,1) = 'information' THEN DO
  562.                MESSAGE 'String gefunden'
  563.          FVersion.z = '                      '
  564.       END
  565.  
  566. /*
  567.       MESSAGE FVersion.z z
  568.       IF FIND(FVersion.z,'Could not find version information') > 1  THEN DO
  569.                MESSAGE 'String gefunden'
  570.          FVersion.z = '                      '
  571.       END
  572. */
  573. /*
  574.       IF FVersion.z = 'Could not find version information' THEN DO
  575.          FVersion.z = '                      '
  576.       END
  577. */
  578.    END z
  579. MESSAGE 'TEST6'
  580.    w=1
  581.    ADDRESS COMMAND 'DELETE 'UDDIR'/List1-'BBS_NODE' >NIL:'
  582. MESSAGE 'TEST7'
  583.    ADDRESS COMMAND 'LIST >'UDDIR'/List1-'BBS_NODE' 'DOORUD' LFormat="%-25s %6L %-9D %T "'
  584. MESSAGE 'TEST8'
  585.    file11 = UDDIR'/List1-'BBS_NODE''
  586.    IF exists(file11) THEN DO
  587.       OPEN(fn11,file11,'R')                       /* Check # of lines         */
  588.       DO until eof(fn11)                          /* to the end of file       */
  589.          varv.w = readln(fn11)                    /* Number of lines = w      */
  590.          w = w+1                                  /*                          */
  591.       END                                         /*                          */
  592.       CLOSE(fn11)                                 /*                          */
  593.    END
  594.    ADDRESS COMMAND 'DELETE 'UDDIR'/List1-'BBS_NODE' >NIL:'
  595.    ADDRESS COMMAND 'DELETE 'UDDIR'/VER >NIL:'
  596.    CALL JEP
  597. END
  598.  
  599.  
  600. IF ADLD = '?' THEN DO
  601.    MENU.0 =   MESSAGE '                                Updater Menu  '
  602.    MENU.1 =   MESSAGE
  603.    MENU.2 =   MESSAGE ' [A] All, flag all Files                  [#] Flag File # Toggle'
  604.    MENU.3 =   MESSAGE ' [C] Clear flagged Files                  [?] Displays this Menu'
  605.    MENU.4 =   MESSAGE ' [H] Help, displays Help-Text             [G] Goodbye, leave System (hangup!)'
  606.    MENU.5 =   MESSAGE ' [S] Start Update/add & DL selected Files [Q] Quit, exit Updater'
  607.    MENU.6 =   MESSAGE ' [V] Version, get versions of all Files                       '
  608.    MENU.7 =   MESSAGE ''
  609. IF SN = 1 THEN DO
  610.    MENU.6 =   MESSAGE ' [V] Version, get versions of all Files   [F] Add/Clear Filenote/Filecomment'
  611.    MENU.7 =   MESSAGE ' [O] Off/On Toggle, Sysop Command'
  612. END
  613.    CLS
  614.    MESSAGE
  615.    HEADER1 
  616.    HEADER2 
  617.    MESSAGE
  618.    IF LANG = 'English' THEN DO
  619.       MENU.0
  620.       MENU.1
  621.       MENU.2
  622.       MENU.3
  623.       MENU.4
  624.       MENU.5
  625.       MENU.6
  626.       MENU.7
  627.    END
  628.    fileLANG = TEXT||LANG||'/Menu-UpdateTool'
  629.    IF LANG ~= 'English' THEN DO
  630.       IF ~EXISTS(fileLANG) THEN DO
  631.          MENU.0
  632.          MENU.1
  633.          MENU.2
  634.          MENU.3
  635.          MENU.4
  636.          MENU.5
  637.          MENU.6
  638.          MENU.7
  639.          MESSAGE      
  640.          MESSAGE ' Menu-Help in 'LANG' is not available at the moment. Notify Sysop!'
  641.       END
  642.    END
  643.    IF EXISTS(fileLANG) THEN DO
  644.       SENDFILE TEXT||LANG||'/Menu-UpdateTool'
  645.    END
  646.    MESSAGE
  647.    SENDSTRING '[RETURNto continue... '
  648.    GETCHAR
  649.    CLS
  650.    CALL JEP
  651. END
  652. IF ADLD = 'H' THEN DO
  653.    CLS
  654.    MESSAGE
  655.    HEADER1 
  656.    HEADER2 
  657.    MESSAGE
  658.    IF LANG = 'English' THEN DO
  659.  
  660.    HELP.0 =   MESSAGE '   Updater Help  '
  661.    HELP.1 =   MESSAGE
  662.    HELP.2 =   MESSAGE ' [A] All, flag all Files................... Flag all Files for archiving. Use'
  663.    HELP.3 =   MESSAGE '                                            [S]tart for archiving and Download.'
  664.    HELP.4 =   MESSAGE ' [C] Clear flagged Files................... and clear all Files from Archive.'
  665.    HELP.5 =   MESSAGE ' [H] Help, displays Help-Text.............. Displays this Help-Text.'
  666.    HELP.6 =   MESSAGE ' [S] Start Update/add & DL selected Files.. that are flagged. After adding a'
  667.    HELP.7 =   MESSAGE '                                            Download prompt follows.'
  668.    HELP.8 =   MESSAGE ' [V] Version, get versions of all Files.... if a version string is found.'
  669.    HELP.9 =   MESSAGE 
  670.    HELP.10=   MESSAGE ' [#] Flag File # Toggle.................... A number followed by a [RETURN]'
  671.    HELP.11=   MESSAGE '                                            flaggs or un-flaggs a File.'
  672.    HELP.12=   MESSAGE ' [?] Display Menu.......................... Displays the Menu.'
  673.    HELP.13=   MESSAGE ' [G] Goodbye, leave System (hangup!)....... Quick Logoff - no security check!'
  674.    HELP.14=   MESSAGE ' [Q] Quit, exit Updater.................... goes back to the Menu of the BBS.'
  675.    HELP.15=   MESSAGE ' [F] Filenote/Filecomment.................. ability for BBS Sysop only!'
  676.    HELP.16=   MESSAGE ' [O] On/Off Toggle, Sysop Command.......... ability for BBS Sysop only!'
  677.       HELP.0
  678.       HELP.1
  679.       HELP.2
  680.       HELP.3
  681.       MESSAGE
  682.       HELP.4
  683.       MESSAGE
  684.       HELP.5
  685.       MESSAGE
  686.       HELP.6
  687.       HELP.7
  688.       MESSAGE
  689.       HELP.8 
  690.       HELP.9
  691.    SENDSTRING '[RETURNto continue... '
  692.    GETCHAR
  693.       CLS
  694.       MESSAGE
  695.       HEADER1 
  696.       HEADER2 
  697.       MESSAGE
  698.       HELP.0
  699.       MESSAGE
  700.       HELP.10
  701.       HELP.11
  702.       MESSAGE
  703.       HELP.12
  704.       MESSAGE
  705.       HELP.13
  706.       MESSAGE
  707.       HELP.14
  708.       IF SN = 1 THEN DO
  709.         MESSAGE         
  710.         HELP.15
  711.         MESSAGE         
  712.         HELP.16
  713.       END
  714.    END
  715.    fileLANG = TEXT||LANG||'/Help-UpdateTool'
  716.    IF LANG ~= 'English' THEN DO
  717.       IF ~EXISTS(fileLANG) THEN DO
  718.          HELP.0
  719.          HELP.1
  720.          HELP.2
  721.          HELP.3
  722.          HELP.4
  723.          HELP.5
  724.          HELP.6
  725.          MESSAGE      
  726.          MESSAGE INFO' Help in 'LANG' is not available at the moment. Notify Sysop!'
  727.       END
  728.    END
  729.    IF EXISTS(fileLANG) THEN DO
  730.       SENDFILE TEXT||LANG||'/Help-UpdateTool'
  731.    END
  732.    MESSAGE
  733.    SENDSTRING '[RETURNto continue... '
  734.    GETCHAR
  735.    CLS
  736.    CALL JEP
  737. END
  738.  
  739. IF ADLD = 'D' THEN DO
  740.       MESSAGE INFO' Use [S] to start packing Files and download!'
  741.       CALL JEP
  742.    IF f=0 THEN DO
  743.       MESSAGE 'No Files selected!'
  744.       CALL JEP
  745.    END
  746.    CALL ASK_DLD
  747. END
  748.  
  749. IF ADLD = 'G' THEN DO
  750.    MESSAGE 'G'
  751.    DROPCARRIER
  752.    CALL DONE
  753. END
  754.  
  755. IF ADLD < 0 THEN DO
  756.    CALL JEP
  757. END
  758.  
  759. IF ADLD > x THEN DO
  760.    CALL JEP
  761. END
  762.  
  763. MESSAGE 
  764. MESSAGE
  765. IF GFX = 0 THEN DO
  766.    CLS
  767. END
  768. IF GFX = 1 THEN DO
  769.    SENDSTRING 'H'
  770. END
  771. j=0
  772. s=0
  773.  
  774. DO s = 0 TO x
  775.    IF ADLD = 0 THEN DO
  776.       Mark.s = 0
  777.    END
  778.    IF ADLD = s THEN DO
  779.       Mark.s = Mark.j + 2
  780.       Flag.s = 'Flagged!'
  781.       f=f+1
  782.       IF Mark.s > 2 THEN DO
  783.          Mark.s = Mark.j - 4
  784.          Flag.s = ''
  785.       END
  786.    END
  787.    j=j+1
  788. END s
  789.  
  790. JEP:
  791.  
  792.  
  793. s=0
  794. j=0
  795. v=0
  796. m=0
  797. IF GFX = 0 THEN DO
  798.    CLS
  799. END
  800. IF GFX = 1 THEN DO
  801.    SENDSTRING 'H'
  802. END
  803. MESSAGE
  804. HEADER1 
  805. HEADER2 
  806. MESSAGE
  807. IF VMODE=0 THEN DO
  808.    MESSAGE ' No. Filename                   Bytes Date      Time     Comment               '
  809. END
  810. IF VMODE=1 THEN DO
  811.    MESSAGE ' No. Filename                   Bytes Date      Time     Version               '
  812. END
  813. MESSAGE '-------------------------------------------------------------------------------'
  814. DO m = 1 TO x
  815.    j=j+1
  816.    s=s+1
  817.    v=v+1
  818.    IF VMODE=0 THEN DO
  819.       new = LEFT(''RIGHT('['m']',14,' ')' 'var.m'',135,' ')
  820.       IF Flag.s = 'Flagged!' THEN DO
  821.          IF GFX = 0 THEN DO
  822.             new = LEFT(''RIGHT('-'m'-',14,' ')' 'var.m'',135,' ')
  823.          END
  824.          IF GFX = 1 THEN DO
  825.             new = LEFT(''RIGHT('['m']',14,' ')' 'var.m'',135,' ')
  826.          END
  827.          new=OVERLAY(Flag.s,new,84,13)
  828.       END
  829.       MESSAGE RIGHT(new,135,' ')
  830.    END
  831.    IF VMODE=1 THEN DO
  832.       new = LEFT(''RIGHT('['m']',14,' ')' 'varv.m''LEFT(''FVersion.m'',23,' ')'',135,' ')
  833.       IF Flag.s = 'Flagged!' THEN DO
  834.          IF GFX = 0 THEN DO
  835.             new = LEFT(''RIGHT('-'m'-',14,' ')' 'varv.m''LEFT(''FVersion.m'',23,' ')'',135,' ')
  836.          END
  837.          IF GFX = 1 THEN DO
  838.             new = LEFT(''RIGHT('['m']',14,' ')' 'varv.m''LEFT(''FVersion.m'',23,' ')'',135,' ')
  839.          END
  840.          new=OVERLAY(Flag.s,new,84,13)
  841.       END
  842.       MESSAGE RIGHT(new,135,' ')
  843.    END
  844. END m
  845. MESSAGE '-------------------------------------------------------------------------------'
  846. m=0
  847. s=0
  848. z=0
  849. a=0
  850. DO m = 1 TO x
  851.    s=s+1
  852.    z=z+1
  853.    IF Flag.s = 'Flagged!' THEN DO
  854.       f=1
  855.       a=a+1      
  856.    END
  857. END m
  858.  
  859. CALL ASK_DL
  860.  
  861.  
  862. ASK_DLD:
  863.  
  864. IF LENGTH(STATEF(UDDIR))=0 THEN DO
  865.    MESSAGE 'ERROR: File not found!'
  866.    CALL DONE
  867. END
  868.  
  869. MESSAGE
  870. file10 = UDDIR'/Temp_'CODE'.lha'
  871. IF ~exists(file10) THEN DO
  872.    MESSAGE
  873.    ERR3.l
  874.    GETCHAR
  875.    CALL JEP
  876. END
  877. ASK_DLD:
  878. Q10.E = SENDSTRING 'Start Download of `Temp_'CODE'.lha` ? [Y/n] : '
  879. Q10.G = SENDSTRING 'Download der `Temp_'CODE'.lha` starten? [J/n] : '
  880. MESSAGE
  881. Q10.l
  882.  
  883. GETCHAR
  884. ADLD = upper(result)
  885. SELECT
  886.    WHEN ADLD='N' THEN CALL JEP
  887.    WHEN ADLD='Y' THEN CALL GO_DLD
  888.    WHEN ADLD='J' THEN CALL GO_DLD
  889.    WHEN ADLD='
  890. ' THEN CALL GO_DLD
  891.    WHEN ADLD='Q' THEN CALL DONE
  892.    OTHERWISE  CALL ASK_DLD
  893. END
  894.  
  895. GO_DLD:  /*============= ADDING FILE_ID.DIZ & START DL =================*/
  896.  
  897. m=0
  898. s=0
  899. z=0
  900. a=0
  901. DO m = 1 TO x
  902.    s=s+1
  903.    z=z+1
  904.    IF Flag.s = 'Flagged!' THEN DO
  905.       f=1
  906.       a=a+1      
  907.       ADName.a = FName.z
  908.    END
  909. END m
  910.  UPDATE = 'Update/Tool'
  911. IF a > 1 THEN DO
  912.  UPDATE = 'Updates/Tools'
  913. END
  914.  
  915. LenLine=44            /* Länge der auszugebenden Zeile   */
  916. Max=a                /* Anzahl Files                    */
  917. x=1;y=1                /* Laufzähler                      */
  918. Output.1=""            /* Ersten Ausgabe-Variable initialisieren */
  919. DO FOREVER            /*                                 */
  920.  L1=LENGTH(Output.x)        /* Länge des Augabe Strings        */
  921.  L2=LENGTH(ADName.y)        /* Länge des Filenamens            */
  922.  IF L1+L2 > LenLine THEN DO    /* Ausgabe + Filename > Maximum??? */
  923.   x=x+1                /* Ja, dann neue Ausgabe-Variable  */
  924.   Output.x=""            /* und initialisieren              */
  925.  END                /*                                 */
  926.  Output.x = Output.x || ADName.y/* Zusammenfügen                   */
  927.  y=y+1                /* Nächste Filename                */
  928.  IF y > Max THEN LEAVE        /* Letzte File erreicht?           */
  929.                 /* Noch platz für Komma und Space? */
  930.                                 
  931.  IF LENGTH(Output.x)+2 <= LenLine THEN Output.x = Output.x || ", "
  932. END
  933.  
  934. MARK:
  935. CLS
  936. file0 = UDDIR'/FILE_ID.DIZ'                                /*    */
  937. OPEN(fn0,file0,'W')                                        /*    */
  938. Writeln(fn0,''a' 'UPDATE' for /T\empest BBS Software:')    /*    */
  939. CLOSE(fn0)                                          /*    */
  940. MESSAGE
  941. HEADER1 
  942. HEADER2 
  943. MESSAGE
  944. MESSAGE
  945. MESSAGE '         Filename    Size Date     Description'
  946. MESSAGE '     ------------ ------- -------- --------------------------------------------'
  947. MESSAGE '      Temp_'CODE'.lha 'RIGHT(WORD(STATEF(''UDDIR'/Temp_'CODE'.lha'),2),7,' ')' 'DAT' 'a' 'UPDATE' for /T\empest BBS Software:'
  948.  
  949. DO i=1 TO x
  950.    IF i > 4 THEN DO
  951.       OPEN(fn0,file0,'a')                   /*    */
  952.        WriteLN(fn0,'& more. Support BBS: 'SYSTEM'')        /*    */
  953.        CLOSE(fn0)                                      /*    */
  954.        MESSAGE '                                   & more. Support BBS: 'SYSTEM'' 
  955.        CALL ADD2PACK
  956.    END
  957.    MESSAGE '                                   'Output.i
  958.    OPEN(fn0,file0,'a')                           /*    */
  959.    WriteLN(fn0,Output.i)                                   /*    */
  960.    CLOSE(fn0)                                  /*    */
  961. END 
  962. ADD2PACK:
  963. IF i < 4 THEN DO
  964.     OPEN(fn0,file0,'a')                           /*    */
  965.     WriteLN(fn0,'Support BBS: 'SYSTEM'')                   /*    */
  966.     MESSAGE '                                   Support BBS: 'SYSTEM''                  /*    */
  967.     CLOSE(fn0)                                      /*    */
  968. END
  969. OPEN(fn0,file0,'A')                                        /*    */
  970. Writeln(fn0,'Download Date/Time: 'DAT', 'COD'')            /*    */
  971. Writeln(fn0,' _______  ______  _  ___  _______________  ') /*    */
  972. Writeln(fn0,'/___  __\/ ___/ \/ \/ _ \/ ___/ _/___  __\ ') /*    */
  973. Writeln(fn0,'\/\/ /\_/ __//     / ___/ __/\_ \\/\/ /\_/\') /*    */
  974. Writeln(fn0,' \/_/ //___//_/\/\/_/\_/___/\___/\\/_/ /\\/') /*    */
  975. Writeln(fn0,'  \_\/ \___\\_\_\_\_\/ \___\/\__\/ \_\/ BBS') /*    */
  976. CLOSE(fn0)                                     /*    */
  977. MESSAGE '                                   Download Date and Time: 'DAT', 'COD'' /*    */
  978. MESSAGE '                                    _______  ______  _  ___  _______________  ' /*    */
  979. MESSAGE '                                   /___  __\/ ___/ \/ \/ _ \/ ___/ _/___  __\ ' /*    */
  980. MESSAGE '                                   \/\/ /\_/ __//     / ___/ __/\_ \\/\/ /\_/\' /*    */
  981. MESSAGE '                                    \/_/ //___//_/\/\/_/\_/___/\___/\\/_/ /\\/' /*    */
  982. MESSAGE '                                     \_\/ \___\\_\_\_\_\/ \___\/\__\/ \_\/ BBS' /*    */
  983. ADDRESS COMMAND 'Lha a 'UDDIR'/Temp_'CODE'.lha 'UDDIR'/File_ID.DIZ'
  984.  
  985.  
  986. /*======================================================================*/
  987. /*       RELEASE NOTES / BETA TESTER RULEZ                              */
  988. /*======================================================================*/
  989.  
  990.  
  991. fileLANG = TEXT||LANG||'/Text-UpdateTool'
  992.  
  993. IF EXISTS(fileLANG) THEN DO
  994.    ADDRESS COMMAND 'COPY 'fileLANG' TO 'UDDIR'/BetaTester.README!'
  995.    ADDRESS COMMAND 'Lha a 'UDDIR'/Temp_'CODE'.lha 'UDDIR'/BetaTester.README!'
  996. END
  997.  
  998.    DOWNLOAD file10
  999.  
  1000. ASK_DLD2:
  1001. Q11.E = SENDSTRING 'Did you get the whole `Temp_'CODE'.lha` ? [Y/N] : '
  1002. Q11.G = SENDSTRING 'Hast Du den Download komplett erhalten? [J/N] : '
  1003. MESSAGE
  1004. Q11.l
  1005.  
  1006. GETCHAR
  1007. ADLD2 = upper(result)
  1008. SELECT
  1009.    WHEN ADLD2='N' THEN CALL ASK_DLD3
  1010.    WHEN ADLD2='Y' THEN CALL DLD_DONE
  1011.    WHEN ADLD2='J' THEN CALL DLD_DONE
  1012.    WHEN ADLD2='Q' THEN CALL DONE
  1013.    OTHERWISE  CALL ASK_DLD2
  1014. END
  1015.  
  1016. ASK_DLD3:
  1017. Q12.E = SENDSTRING 'Start Download again? [Y/N] : '
  1018. Q12.G = SENDSTRING 'Download nochmal starten? [J/N] : '
  1019. MESSAGE
  1020. Q12.l
  1021. GETCHAR
  1022. ADLD2 = upper(result)
  1023. SELECT
  1024.    WHEN ADLD2='N' THEN CALL DONE
  1025.    WHEN ADLD2='Y' THEN CALL MARK
  1026.    WHEN ADLD2='J' THEN CALL MARK
  1027.    WHEN ADLD2='Q' THEN CALL DONE
  1028.    OTHERWISE  CALL ASK_DLD3
  1029. END
  1030.  
  1031.  
  1032. DLD_DONE:
  1033. TdyFiles=TdyFiles+a
  1034. TotalFiles=TotalFiles+a
  1035.  
  1036.  
  1037. TotalDLDs=TotalDLDs + 1
  1038. TdyDLDs=TdyDLDs+1
  1039. CALL STATS2
  1040. CALL DONE
  1041.  
  1042.  
  1043.  
  1044.  
  1045. /********************* READ ************************/
  1046. /*
  1047. READ:
  1048.  
  1049. MESSAGE 
  1050. MESSAGE 
  1051. SENDSTRING 'Please hold, loading data...'
  1052. /* Checking if its time to reset the output file */
  1053. z = 0
  1054. Open(fn1,file1,'R')                             /* Wieviele Zeilen?         */
  1055.   do until eof(fn1)                             /* Bis zum Ende des Files...*/
  1056.     var.x = readln(fn1)                         /* ergibt Variable x        */
  1057.     x = x+1                                     /*                          */
  1058.   end                                           /*                          */
  1059. Close(fn1)                                      /*                          */
  1060.  
  1061. CLS
  1062. MESSAGE
  1063. HEADER1
  1064. MESSAGE ''COPIES('_',80)''
  1065. MESSAGE ''
  1066. i = 0
  1067. Open(fn1,file1,'R')                             /*                          */
  1068. do until n = x                                  /*                          */
  1069.     line = readln(fn1)                      /*                          */
  1070.     n = n+1                         
  1071.     i = i+1                         
  1072.     MESSAGE ''line''
  1073.     If n = x THEN DO until i=15         /* If last Screen is shorter*/
  1074.         MESSAGE ' '            /* as 12 entries, then fill */
  1075.         i = i+1                /* screen up to 15 lines for*/
  1076.                 CALL fin
  1077.     END                    /* cleaner output           */
  1078.     IF n = x THEN DO             /*                 */
  1079.     call fin                 /*                 */
  1080.     end                     /*                 */
  1081.     If i=15 then do
  1082.         MESSAGE ''COPIES('_',80)''
  1083.             MESSAGE ''
  1084.         SendString '[RETURN] or [Q]uit '
  1085.         getchar
  1086.         yesno = upper(result)
  1087.             if yesno = 'Q' then do
  1088.                  Close(fn1)
  1089.                  CALL DONE
  1090.             end
  1091.         CLS 
  1092.         MESSAGE ''
  1093.         MESSAGE ' Rufnummer   Name                   Art 000000 C     Netze   Online  Date       '
  1094.         MESSAGE ''COPIES('_',80)''
  1095.         MESSAGE ''
  1096.         i = 0
  1097.     end
  1098. end
  1099. fin:
  1100. Close(fn1)
  1101. MESSAGE ''COPIES('_',80)''
  1102. MESSAGE 
  1103. SendString '[RETURNto exit... '
  1104. getchar
  1105. */
  1106. /*---------------------------------------------------------*/
  1107. DONE:
  1108. IF LENGTH(STATEF(UDDIR)) ~='' THEN DO
  1109.    ADDRESS COMMAND 'DELETE 'UDDIR' ALL >NIL:'
  1110. END
  1111. ADDRESS COMMAND 'DELETE NODE:DOOR_'BBS_NODE' >NIL:'     /* Kill NODE:DOOR_# Info  */
  1112. IF EXISTS("NODE:UD.bat-"BBS_NODE) THEN DO
  1113.  ADDRESS COMMAND 'DELETE NODE:UD.bat-'BBS_NODE' >NIL:'
  1114. END
  1115. DONE3:
  1116.    CLS
  1117. MESSAGE
  1118. HEADER1
  1119. HEADER2
  1120. MESSAGE
  1121.    MESSAGE CENTER(' _'CENTER('',61,'_')' ',98,' ')
  1122.    MESSAGE CENTER('| 'CENTER('',61,' ')'|',108,' ')
  1123.    MESSAGE CENTER('|'CENTER(''PROGRAMNAME' v'VERS', written for /T\empest BBS Software',62,' ')'|',108,' ')
  1124.    MESSAGE CENTER('|'CENTER('by Casa Nova, Skyline BBS Berlin, +49 (0)30 824-1071.',62,' ')'|',108,' ')
  1125.    MESSAGE CENTER('|'CENTER('Idea taken from the Beta Updater Door v3.3 by Chad Kovac',62,' ')'|',108,' ')
  1126.    MESSAGE CENTER('|'CENTER('',62,'_')'|',108,' ')
  1127.    MESSAGE CENTER('  'CENTER('',61,' ')' ',98,' ')
  1128.    MESSAGE
  1129.  
  1130.    MESSAGE CENTER(' _'CENTER('',36,'_')' ',98,' ')
  1131.    MESSAGE CENTER('| 'CENTER('',36,' ')'|',108,' ')
  1132.    MESSAGE CENTER('|  Updater Stats    'RIGHT(Today,5,' ')'  'RIGHT(Total,5,' ')'      |',122,' ')
  1133.    MESSAGE CENTER('|'CENTER('',37,' ')'|',108,' ')
  1134.    MESSAGE CENTER('|  Used...........: 'RIGHT(TdyUsed,4,' ')'   'RIGHT(TotalUsed,4,' ')'       |',122,' ')
  1135.    MESSAGE CENTER('|  Files send.....: 'RIGHT(TdyFiles,4,' ')'   'RIGHT(TotalFiles,4,' ')'       |',122,' ')
  1136.    MESSAGE CENTER('|  Downloads......: 'RIGHT(TdyDLDs,4,' ')'   'RIGHT(TotalDLDs,4,' ')'       |',122,' ')
  1137.    MESSAGE CENTER('|'CENTER('',37,'_')'|',108,' ')
  1138.    MESSAGE CENTER(' 'CENTER('',36,' ')' ',99,' ')
  1139.    MESSAGE
  1140.  
  1141.  
  1142. IF SHUTOFF = 1 THEN DO
  1143.    OFF = OFF
  1144.    MESSAGE '                  Sorry, but the Tool is offline at the moment.'
  1145. END
  1146. IF SHUTOFF = 0 THEN DO
  1147.    OFF = ON
  1148.    SCREENOUT 'Updater is:' OFF
  1149. END
  1150. MESSAGE
  1151. /*---------------------------------------------------------*/
  1152. DONE2:
  1153. 'exit'
  1154. exit
  1155.  
  1156. /* View what LhA is doing                                               */
  1157. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  1158.  
  1159. View:
  1160.  
  1161. Chars="";Out="";Endoffile=0;Offset=1;Newcount=1;xyz=0   /* Do not change! */
  1162.  
  1163. IF ~OPEN(DAT,"FIFO:UD_Node-"BBS_Node"/r",'R') THEN CALL ERROR
  1164.  DO FOREVER
  1165.  
  1166.   Chars=Chars || READCH(DAT,20)
  1167.  
  1168.   DO FOREVER
  1169.  
  1170.    Offset=INDEX(Chars,'0D'x)
  1171.    IF Offset~=0 THEN LEAVE
  1172.    Chars=Chars || READCH(DAT,10)
  1173.    IF EOF(DAT) THEN DO
  1174.     Offset=LENGTH(Chars)
  1175.     Endoffile=1
  1176.     LEAVE
  1177.    END
  1178.   END
  1179.  
  1180.   Out=LEFT(Chars,Offset)
  1181.   new=1;old=1
  1182.   IF INDEX(Out,'0A'x)~=0 THEN DO
  1183.    DO FOREVER
  1184.     xyz=xyz+1
  1185.     IF INDEX(Out,'0A'x,new)=0 THEN LEAVE
  1186.     new=INDEX(Out,'0A'x,new)
  1187.     Out2=SUBSTR(Out,old,new-old) || '0D'x
  1188.     old=new
  1189.     IF xyz>4 & xyz<7 THEN 'message' Out2
  1190.     new=new+1
  1191.    END
  1192.   END
  1193.  
  1194.   ELSE DO
  1195.     'message' Out "A"
  1196.   END
  1197.  
  1198.   Newcount=LENGTH(Chars)-Offset
  1199.   Chars=RIGHT(Chars,Newcount)
  1200.  
  1201.   IF Endoffile=1 THEN LEAVE
  1202.  
  1203.  END
  1204.  
  1205.  
  1206. IF ~CLOSE(DAT) THEN CALL ERROR
  1207.  
  1208. RETURN
  1209.  
  1210. /* END of View */
  1211.  
  1212. SYNTAX:
  1213. message " **SYNTAX ERROR**  in UpdateTool line: " SIGL
  1214. message "Severity: " RC errortext(RC)
  1215. message " "
  1216. message "Notify Sysop Immediately!! -- Hit any key "
  1217. message " "
  1218. getchar
  1219. 'exit'
  1220. exit
  1221.  
  1222. ERROR:
  1223. message " **IO ERROR**  in UpdateTool line: " SIGL
  1224. message "Severity: " RC errortext(RC)
  1225. message " "
  1226. message "Notify Sysop Immediately!! -- Hit any key "
  1227. message " "
  1228. getchar
  1229. 'exit'
  1230. exit
  1231.  
  1232. HALT:
  1233. message " **HALT**  in UpdateTool line: " SIGL
  1234. message "Severity: " RC errortext(RC)
  1235. message " "
  1236. message "Notify Sysop Immediately!! -- Hit any key "
  1237. message " "
  1238. getchar
  1239. 'exit'
  1240. exit
  1241.  
  1242. FAILURE:
  1243. message " **FAILURE**  in UpdateTool line: " SIGL
  1244. message "Severity: " RC errortext(RC)
  1245. message " "
  1246. message "Notify Sysop Immediately!! -- Hit any key "
  1247. message " "
  1248. getchar
  1249. 'exit'
  1250. exit
  1251.  
  1252. NOVALUE:
  1253. message " **NOVALUE**  in UpdateTool line: " SIGL
  1254. message "Severity: " RC errortext(RC)
  1255. message " "
  1256. message "Notify Sysop Immediately!! -- Hit any key "
  1257. message " "
  1258. getchar
  1259. 'exit'
  1260. exit
  1261.  
  1262. IOERR:
  1263. message " **IOERR**  in UpdateTool line: " SIGL
  1264. message "Severity: " RC errortext(RC)
  1265. message " "
  1266. message "Notify Sysop Immediately!! -- Hit any key "
  1267. message " "
  1268. getchar
  1269. 'exit'
  1270. exit
  1271.  
  1272.  
  1273. STATS2:
  1274.       OPEN(fnCON,fileCON,'W')
  1275.       WRITELN(fnCON,'UPDATE! 'VERS'')        /* 1  11 Letter */
  1276.       WRITELN(fnCON,ShutOff)            /* 2  11 Letter */
  1277.       WRITELN(fnCON,TdyDate)            /* 3  11 Letter */
  1278.       WRITELN(fnCON,TdyFiles)            /* 4  11 Letter */
  1279.       WRITELN(fnCON,TdyUsed)            /* 5  11 Letter */
  1280.       WRITELN(fnCON,TdyDLDs)            /* 6  11 Letter */
  1281.       WRITELN(fnCON,TdyUPD)            /* 7  11 Letter */
  1282.       WRITELN(fnCON,TotalUsed)            /* 8  11 Letter */
  1283.       WRITELN(fnCON,TotalFiles)            /* 9  11 Letter */
  1284.       WRITELN(fnCON,TotalDLDs)            /* 10 11 Letter */
  1285.       WRITELN(fnCON,TotalUPD)            /* 11 11 Letter */
  1286.       WRITELN(fnCON,'UPDATE!')            /* 12 11 Letter */
  1287. /*    WRITECH(fnCON,D2C('0'))  */
  1288.       CLOSE(fnCON)
  1289. RETURN
  1290.  
  1291.